gpsbabel.git
3 years agoWork on grtcrc to be a little more functional and C++ style. (#1007)
Robert Lipe [Fri, 3 Mar 2023 07:56:36 +0000 (01:56 -0600)]
Work on grtcrc to be a little more functional and C++ style. (#1007)

3 years agoadd support for dynamic formats (#1005)
tsteven4 [Mon, 20 Feb 2023 15:05:24 +0000 (08:05 -0700)]
add support for dynamic formats (#1005)

* de-duplicate format setup in find_vec

* create a class to pass format info pack and forth from vecs.

This simplifies re-initialization of a format, which main already
did in a few cases.

The operator overloads for the format info class make the transition
simplier.

* return empty braced init list from find_vecs when not found.

* dynamic format checkpoint.

* delete static GeoFormat instance.

* support dynamic xcsv format.

allow dynamic formats to use rd_init, rd_deinit, wr_init, wr_denint.
This makes conversion to dynamic formats easier as we can, but aren't
forced to move the old init/deinit code.
Often rd/wr_init is intertwined with rd/wr_posn_init.

use dynamic xcsv format.
fix undiscovered bug releated to option order. We assumed an order
of -i -f -o -F, but -i -o -f -F can cause errors if both formats
are style based.
test for above bug added to iblue747.test.

* add missing reference

* use template for format factories.

* correct vecs includes

* fix another filename parameter for positional args issue.

* make Vecs::prepare_format static.

* move prepare_format call to just before xxx_init

for both static and dynamic formats.

3 years agoRemove remaining callers and definition of rtrim. (#1001)
GPSBabel [Sat, 18 Feb 2023 17:39:15 +0000 (11:39 -0600)]
Remove remaining callers and definition of rtrim. (#1001)

Remove remaining callers and definition of rtrim.

* Minor CV-qualifier battle in jeeps for const correctness.
* Adds a (hacky) bash script to compile mkshort as a standalone binary for
development and testing for upcoming overhaul.

---------

Co-authored-by: Robert Lipe <robertlipe@gmail.com>
3 years agoUpdate gpsbabel_man.xml (#1003)
積丹尼 Dan Jacobson [Mon, 13 Feb 2023 14:00:20 +0000 (22:00 +0800)]
Update gpsbabel_man.xml (#1003)

Fix critical mistake, overlooked for years.
(Sure hope I am editing the real source file.
There is no warning at the top of this file that it is machine generated.)

3 years agode-duplicate format setup in find_vec (#997)
tsteven4 [Wed, 8 Feb 2023 15:34:41 +0000 (08:34 -0700)]
de-duplicate format setup in find_vec (#997)

* de-duplicate format setup in find_vec

* create a class to pass format info pack and forth from vecs.

This simplifies re-initialization of a format, which main already
did in a few cases.

The operator overloads for the format info class make the transition
simplier.

* return empty braced init list from find_vecs when not found.

3 years agoRemove ltrtim(). No callers remain.
Robert Lipe [Wed, 8 Feb 2023 06:49:28 +0000 (00:49 -0600)]
Remove ltrtim(). No callers remain.

3 years agocreate wpts from kml placemark/multigeometry/points. (#999)
tsteven4 [Sat, 28 Jan 2023 13:00:06 +0000 (06:00 -0700)]
create wpts from kml placemark/multigeometry/points. (#999)

amazingly enough earth offered up a kml from a search and we
couldn't recover the point.

3 years agoconvert geo to Format class. (#998)
tsteven4 [Fri, 27 Jan 2023 13:48:04 +0000 (06:48 -0700)]
convert geo to Format class. (#998)

This also adds the encoding attribute to the xml declaration.
This also starts the loc element at the beginning of a line.
Previously we jumped through some hoops to avoid the above two
changes so we could exaclty match the original reference file.

We also pass the writer to the waypt_disp_all callback via a lambda.
This allows the output File and QXmlStreamWriter to be local which
simplified cleanup.

3 years agoconvert igc to Format class. (#996)
tsteven4 [Thu, 26 Jan 2023 14:53:14 +0000 (07:53 -0700)]
convert igc to Format class. (#996)

and fix a few bugs.

3 years agoeliminate use of time_t etc in igc. (#995)
tsteven4 [Tue, 24 Jan 2023 14:19:25 +0000 (07:19 -0700)]
eliminate use of time_t etc in igc. (#995)

3 years agoeliminate some time_t uses. (#994)
tsteven4 [Sun, 22 Jan 2023 16:17:35 +0000 (09:17 -0700)]
eliminate some time_t uses. (#994)

* eliminate some time_t uses.

* whittle down time_t

* move some gpi time handling to Qt.

* drop include comment on defs.h

3 years agouse bool type (#992)
tsteven4 [Fri, 20 Jan 2023 18:14:35 +0000 (11:14 -0700)]
use bool type (#992)

* use bools instead of ints.

* another bool parameter.

3 years agoEnable the gpx reader to use the declared namespace prefixes for recognized namespace...
tsteven4 [Wed, 18 Jan 2023 16:58:48 +0000 (09:58 -0700)]
Enable the gpx reader to use the declared namespace prefixes for recognized namespace URIs. (#990)

* use the declared ns prefixes in the gpx reader.

* remap other used uris, even though we have never

seen a different prefix used with them.

delete GARMIN_RTEPT_EXT, which was never used and appears to have
never existed.

3 years agoUpdate trackfilter.h (#987)
積丹尼 Dan Jacobson [Tue, 17 Jan 2023 20:42:51 +0000 (04:42 +0800)]
Update trackfilter.h (#987)

* Update trackfilter.h

Also mention exact matching timestamps. Proven by
https://github.com/GPSBabel/gpsbabel/issues/981#issuecomment-1380515460

* update reference files for changed help text.

and fiddle help text

Co-authored-by: tsteven4 <13596209+tsteven4@users.noreply.github.com>
3 years agomacOS brew install fix (#986)
tsteven4 [Tue, 17 Jan 2023 20:14:33 +0000 (13:14 -0700)]
macOS brew install fix (#986)

* optimize brew install time.

* try skipping brew update to speed up install

* is jing-trang really the problem?

* skip relink step

* avoid brew python link issues and dependency upgrades.

This cuts the brew install time down about 10x.

3 years agofix kml balloon trailing space (#984)
tsteven4 [Sat, 14 Jan 2023 12:53:25 +0000 (05:53 -0700)]
fix kml balloon trailing space (#984)

* kill trailing space in kml popup balloons.

* fix old FIXME with end document

that requires regeneration of references.

The change in LineStyles.kml is different handling of a vertical
tab.  This changed when we let Qt cleanup illegal xml characters
long ago.

3 years agoUpdate kml-prec.xml (#979)
積丹尼 Dan Jacobson [Thu, 12 Jan 2023 15:43:46 +0000 (23:43 +0800)]
Update kml-prec.xml (#979)

* Update kml-prec.xml

I am guessing, based on the same sentence in gpx-elevprec.xml, what you meant to say.

* correct description of kml prec option.

Co-authored-by: tsteven4 <13596209+tsteven4@users.noreply.github.com>
3 years agoUpdate kml.xml (#980)
積丹尼 Dan Jacobson [Thu, 12 Jan 2023 14:13:40 +0000 (22:13 +0800)]
Update kml.xml (#980)

Fix typo.

3 years agoeliminate some uses of xstrdup/xstrndup. (#977)
tsteven4 [Wed, 11 Jan 2023 18:49:06 +0000 (11:49 -0700)]
eliminate some uses of xstrdup/xstrndup. (#977)

and fix another related memory leak!

3 years agoremove some unused code. (#976)
tsteven4 [Sun, 8 Jan 2023 15:52:06 +0000 (08:52 -0700)]
remove some unused code. (#976)

3 years agomimic std::optional for flagged Waypoint fields. (#975)
tsteven4 [Sat, 7 Jan 2023 15:18:02 +0000 (08:18 -0700)]
mimic std::optional for flagged Waypoint fields. (#975)

* mimic std::optional for flagged Waypoint fields.

* manual adjustments to waypt access usage.

* split optional Waypoint flags, tune packing.

* bring op_flags into Waypoint.

* add comments about future Waypoint optional fields.

* sort Waypoint class almost normally.

private members refered to with decltype need to be defined
before they are referred to.

* remove extra parens around *has_value().

* remove extra parens around *value_or().

* remove more extra parens.

3 years agoanother use of potentially invalid waypt field. (#974)
tsteven4 [Fri, 6 Jan 2023 17:05:50 +0000 (10:05 -0700)]
another use of potentially invalid waypt field. (#974)

* another use of potentially invalid waypt field.

* fix erroneous comparison of optional waypt values.

3 years agofix errors handling optional Waypoint fields. (#948)
tsteven4 [Fri, 6 Jan 2023 14:03:26 +0000 (07:03 -0700)]
fix errors handling optional Waypoint fields. (#948)

* fix errors handling optional Waypoint fields.

1. Hide wp_flags from formats by using WAYPT_SET.
2. Don't print values corresponding to Waypoint fields that aren't
valid.
  a) if the field uses wp_flags, then the flag must be set.
  b) power, cadence heartrate must not be zero.

This is in anticipation of use of std::optional instead of wp_flags
to indicate an optional value is present.
The use of invalid power, cadence, and heartrate values was found
fortuitously.

Note this changes kml output, using empty gx:value elements to
correspond to missing data.  gx:value elements are of type
string, the empty string do not violate the schema (unlike empty
when elements).  However, it is unclear who is using this extra
SchemaData so we cannot check to make sure they acutally handle
empty string values.

* don't use WAYPT_HAS with wp_flags that aren't optionals.

* fix some bugs with our home grown optionals.

mostly not using WAYPT_SET resulting in the value being lost.

3 years agoremove encoding, fixed encoding data from formats. (#973)
tsteven4 [Fri, 6 Jan 2023 13:32:51 +0000 (06:32 -0700)]
remove encoding, fixed encoding data from formats. (#973)

3 years agoremove remaining shadows of cet (#971)
tsteven4 [Fri, 6 Jan 2023 12:56:06 +0000 (05:56 -0700)]
remove remaining shadows of cet (#971)

* wean garmin_gpi from global_opts.codec and cet.

* wean garmin from global_opts.codec and cet.

* remove cet

* don't include deprecated includes, no global codec.

* fix garmin includes

* fix up comment indicating garmin encoding issues.

* fiddle with encoding functions.

* change get_codec signature.

* trailling white space

3 years agoenforce exclusivity among sort options (#970)
tsteven4 [Mon, 2 Jan 2023 19:56:02 +0000 (12:56 -0700)]
enforce exclusivity among sort options (#970)

* enforce exclusive sort options.

* use default brace inits for sort members.

3 years agomodernize units (#969)
tsteven4 [Mon, 2 Jan 2023 18:11:23 +0000 (11:11 -0700)]
modernize units (#969)

* modernize units

fmt_* returns a std::pair of the value and the units.
use structured binding to unpack the pair.
use scoped enumeration for the units system.

* make units formatter a class.

* cleanup unitsformatter instance.

3 years agoMake geocache a real class. (#968)
tsteven4 [Mon, 2 Jan 2023 17:30:56 +0000 (10:30 -0700)]
Make geocache a real class. (#968)

3 years agofix clang diagnostic cast-qual (#967)
tsteven4 [Sat, 31 Dec 2022 12:27:50 +0000 (05:27 -0700)]
fix clang diagnostic cast-qual (#967)

* fix cast-qual clang diagnostic

* use const_cast to cheat

* decay an array with casts.

the assembly code for gpsusbwin and gpsusbcommon does match the master branch.

* explicitly use const with auto*

3 years agouse enums for mutually exclusive options in simplify filter (#966)
tsteven4 [Fri, 30 Dec 2022 21:33:14 +0000 (14:33 -0700)]
use enums for mutually exclusive options in simplify filter (#966)

* clean up simplify options

* tweak names

* fiddle with simplify test trying to be plaform neutral.

* use stable sort when testing simplify filter

for cross platform matching.

3 years agoodds and ends (#964)
tsteven4 [Thu, 29 Dec 2022 19:47:11 +0000 (12:47 -0700)]
odds and ends (#964)

* odds and ends

support subseconds in exif GPSTimeStamp. While rare, some devices
provide subsecond information.

add missing include guards.

use cmake for mkicondoc, retiring the last qmake build.

provide default initializers for a couple of data members.

kill some empty statements.

* Dont' use case_ignore_strcmp for two QStrings.

3 years agoUse QString::compare(QStringView, Qt::CaseSensitivity) (#965)
tsteven4 [Thu, 29 Dec 2022 19:02:28 +0000 (12:02 -0700)]
Use QString::compare(QStringView, Qt::CaseSensitivity)  (#965)

* use QString::compare(QString, Qt::CaseSensitivity)

instead of case_ignore_strcmp with a QString and a character
literal.

* use QString::compare(QStringView, Qt::CaseSensitivity)

instead of QString::compare(QLatin1String, Qt::CaseSensitivity).

* compare QStrings to character literals instead of string literals that only contain one character.

3 years agomove gbfile.h, zlib.h out of defs.h. (#963)
tsteven4 [Thu, 29 Dec 2022 14:54:42 +0000 (07:54 -0700)]
move gbfile.h, zlib.h out of defs.h. (#963)

* move gbfile.h, zlib.b out of defs.h.

* fix comment

3 years agocleanup datum lookup & constants (#962)
tsteven4 [Wed, 28 Dec 2022 23:41:04 +0000 (16:41 -0700)]
cleanup datum lookup & constants (#962)

* cleanup datum lookup

* use constexpr for datum contstants

3 years agoObsolete Magellan serial and SD formats (#961)
Robert Lipe [Wed, 28 Dec 2022 22:37:07 +0000 (16:37 -0600)]
Obsolete Magellan serial and SD formats (#961)

* Remove Magellan serial and SD formats. Two different polls (one on the list, one in groundspeak forums) have confirmed disuse.

3 years ago[WIP] Modernize garmin_txt Take the few remaining good ideas from https://github...
Robert Lipe [Wed, 28 Dec 2022 06:22:37 +0000 (00:22 -0600)]
[WIP] Modernize garmin_txt Take the few remaining good ideas from https://github.com/GPSBabel/gpsbabel/pull/442 and merge them manually into the trunk. (#959)

* Modernize garmin_txt
Take the few remaining good ideas from
https://github.com/GPSBabel/gpsbabel/pull/442
and merge them manually into the trunk.

3 years agomove xml tag utilities to xml_tag.cc (#960)
tsteven4 [Tue, 27 Dec 2022 13:34:03 +0000 (06:34 -0700)]
move xml tag utilities to xml_tag.cc (#960)

* move xml tag utilities to xml_tag.cc

they are already declared in src/core/xmltag.h

* move xml_tag.cc to src/core, where it's h file is.

* move global xml_tag routines into class.

* make xml_next non-static.

* make xml_findnext non-static.

* make xml_findfirst non-static

* make xml_attribute non-static

* eliminate some shadowing

* rename XmlTag class.

* retire fs_xml_alloc.

* use QStringView with XmlTag.

* back off QStringView for xml_attribute for Qt 5.

3 years agoRemove all uses of sprintf (#958)
Robert Lipe [Thu, 22 Dec 2022 23:12:31 +0000 (17:12 -0600)]
Remove all uses of sprintf (#958)

Deprecate sprintf in favor of snprintf or QString::asprintf... This buys time until we have {fmt}

* remove unused bgr in tpo.cc
* more pruning of C-style constructs
* Remove unused lap code in Garmin
Unrelated, but required to build on Mac
* Apply Mac runner updates per active topics from runner images bugreports.
It's my belief there are transient problems in the GitHub-provided images (linked in this CL) but this bulletproofs our installation, so I'm rolling with it.

3 years agoDrop incomplete html_encrypt option in kml writer (#956)
Robert Lipe [Thu, 22 Dec 2022 21:24:34 +0000 (15:24 -0600)]
Drop incomplete html_encrypt option in kml writer (#956)

3 years agoadd zlib license (#954)
tsteven4 [Fri, 2 Dec 2022 19:13:19 +0000 (12:13 -0700)]
add zlib license (#954)

3 years agoget dependabot.yaml in correct location (#953)
tsteven4 [Fri, 2 Dec 2022 18:41:28 +0000 (11:41 -0700)]
get dependabot.yaml in correct location (#953)

3 years agoadd dependabot for github actions. (#952)
tsteven4 [Fri, 2 Dec 2022 18:36:00 +0000 (11:36 -0700)]
add dependabot for github actions. (#952)

3 years agoupdate zlib to 1.2.13. (#951)
tsteven4 [Fri, 2 Dec 2022 18:07:32 +0000 (11:07 -0700)]
update zlib to 1.2.13. (#951)

3 years agoadd power to kml track descriptions and balloons. (#950)
tsteven4 [Sun, 27 Nov 2022 14:23:43 +0000 (07:23 -0700)]
add power to kml track descriptions and balloons. (#950)

3 years agofix document generation on fedora (#949)
tsteven4 [Thu, 24 Nov 2022 20:01:41 +0000 (13:01 -0700)]
fix document generation on fedora (#949)

* try to find common docbook url for fedora/ubuntu/homebrew catalogs.

* fedora builds

jing is broken on f32, remove it so it doesn't kill our document build.

add f37, with Qt5 because fedora doesn't have Qt6 webengine yet.

3 years agoadd jing for fedora builds. (#942)
tsteven4 [Thu, 24 Nov 2022 18:18:55 +0000 (11:18 -0700)]
add jing for fedora builds. (#942)

* add jing for fedora builds.

fedora f35 and on don't have a maintainer and thus the package
isn't available.  kludge in jing on f35.

* improve document validation.

* don't force jeng on f35

3 years agoMerge pull request #947 from tsteven4/tweaks
tsteven4 [Tue, 22 Nov 2022 18:09:59 +0000 (11:09 -0700)]
Merge pull request #947 from tsteven4/tweaks

minor improvements, mostly clang-tidy related

3 years agofix some tidy llvm-namespace-comment
tsteven4 [Sun, 20 Nov 2022 21:24:16 +0000 (14:24 -0700)]
fix some tidy llvm-namespace-comment

manually.

3 years agofix rounding in holux.
tsteven4 [Sun, 20 Nov 2022 20:38:58 +0000 (13:38 -0700)]
fix rounding in holux.

and fiddle with the make short default name so we can do a
roundtrip test.

3 years agofix tidy bugprone-reserved-identifier
tsteven4 [Sun, 20 Nov 2022 16:35:13 +0000 (09:35 -0700)]
fix tidy bugprone-reserved-identifier

this was partially automatic and partially manual.

3 years agofix tidy readability-container-size-empty
tsteven4 [Sun, 20 Nov 2022 15:36:53 +0000 (08:36 -0700)]
fix tidy readability-container-size-empty

automatic fix.

3 years agofix tidy performance-type-promotion-in-math-fn
tsteven4 [Sun, 20 Nov 2022 15:23:08 +0000 (08:23 -0700)]
fix tidy performance-type-promotion-in-math-fn

automatic fix.

3 years agofix tidy performance-unnecessary-copy-initialization
tsteven4 [Sun, 20 Nov 2022 15:16:37 +0000 (08:16 -0700)]
fix tidy performance-unnecessary-copy-initialization

manual fix.  also fixes an instance of modernize-loop-convert

3 years agofix tidy modernize-deprecated-headers
tsteven4 [Sun, 20 Nov 2022 15:05:54 +0000 (08:05 -0700)]
fix tidy modernize-deprecated-headers

3 years agotidy bugprone-incorrect-roundings
tsteven4 [Sun, 20 Nov 2022 14:47:47 +0000 (07:47 -0700)]
tidy bugprone-incorrect-roundings

manual fix, passing rounding off to Qt.  Qt may do something
smarter, or it may do just what si_round used to do.

3 years agouse structured binding instead of std::tie.
tsteven4 [Sun, 20 Nov 2022 07:33:12 +0000 (00:33 -0700)]
use structured binding instead of std::tie.

3 years agoupdate macos build system (#946)
tsteven4 [Mon, 14 Nov 2022 18:27:35 +0000 (11:27 -0700)]
update macos build system (#946)

3 years agorelax time constraints on trackfilter move. (#945)
tsteven4 [Sat, 12 Nov 2022 22:34:19 +0000 (15:34 -0700)]
relax time constraints on trackfilter move. (#945)

1. don't require all track points to have time, just leave timeless
track points alone.
2. don't require track points to be ordered by time for move.

This also results in the tracks not being sorted by time for move
only operations.  Instead the original order is preserved.

3 years agoenhance faketime option to allow subsecond steps. (#944)
tsteven4 [Mon, 7 Nov 2022 11:54:56 +0000 (04:54 -0700)]
enhance faketime option to allow subsecond steps. (#944)

3 years agodoc content fixes. (#941)
tsteven4 [Sun, 30 Oct 2022 20:11:35 +0000 (14:11 -0600)]
doc content fixes. (#941)

3 years agoupdate documentation to DocBook 5.0 (#940)
tsteven4 [Sun, 30 Oct 2022 17:17:28 +0000 (11:17 -0600)]
update documentation to DocBook 5.0 (#940)

* convert to docbook 5.0.

* get jing running.

* use uri to find docbook rng.

* brew install jing-trang.  use oasis for rngs.

* add insertion markers to autogen doc files.

* use db5-upgrade.xsl from docbook 5.1 release.

we are still converting to docbook 5.0.

this fixes issues with missing Appendix labels
(e.g. "Appendix A. Supported Datums" was "Suppored Datums")
and Glossary Indexes (e.g. "G" was omitted)
in the html output.

unfortunately it causes issues with translating ulinks inside term
elements.  We patch the dropped links back in.

* make sure makedoc is using utf8 for files.

3 years agoDon't make it easy to iterate the state_t enum...except when we do. (#939)
Robert Lipe [Sun, 30 Oct 2022 03:45:20 +0000 (22:45 -0500)]
Don't make it easy to iterate the state_t enum...except when we do. (#939)

3 years agoMerge pull request #938 from tsteven4/makedoc
tsteven4 [Fri, 28 Oct 2022 14:59:23 +0000 (08:59 -0600)]
Merge pull request #938 from tsteven4/makedoc

update makedoc perl code

3 years agostay on macos11 for github actions a bit longer.
tsteven4 [Fri, 28 Oct 2022 14:33:34 +0000 (08:33 -0600)]
stay on macos11 for github actions a bit longer.

macos-lastest is changing to macos12.

3 years agofix perlcritic issues with makedoc.
tsteven4 [Fri, 28 Oct 2022 14:18:46 +0000 (08:18 -0600)]
fix perlcritic issues with makedoc.

3 years agouse strict on makedoc.
tsteven4 [Fri, 28 Oct 2022 14:00:45 +0000 (08:00 -0600)]
use strict on makedoc.

3 years agofix makedoc warnings.
tsteven4 [Thu, 27 Oct 2022 23:39:51 +0000 (17:39 -0600)]
fix makedoc warnings.

and:
die on errors with file creation, creating autogen directory, or
running gpsbabel.

use dirname to get directory portion of $0.  previously
"./xmldoc/makedoc" would fail as $dir got set to "." instead of
"./xmldoc". "perl xmldoc/makedoc" would work.

3 years agoclean up makedoc with perltidy.
tsteven4 [Thu, 27 Oct 2022 22:00:59 +0000 (16:00 -0600)]
clean up makedoc with perltidy.

among other issues the indentation was insconsistent, and sometimes
just flat out misleading.

This establishes our perl style as that provided by the defaults
with perltidy.

3 years agodocument generation improvements (#937)
tsteven4 [Sun, 23 Oct 2022 19:18:37 +0000 (13:18 -0600)]
document generation improvements (#937)

* build docs on macos CI.

* add fop for macos ci

* block out of source doc builds, change WEB default.

* add gnu-sed for macos fixdoc

* set default logger for fop

with homebrew fop 2.7 the default logger is something else besides
SimpleLog.
The LOGLEVEL statement is specific to SimpleLog.

3 years agoRetire qmake. (#935)
tsteven4 [Fri, 21 Oct 2022 20:53:35 +0000 (14:53 -0600)]
Retire qmake. (#935)

* remove qmake.

* fix fedora cmake builds in CI.

* update build instructions in doc.

* more qmake cleanup

* remove rc stringification nonsense

* tweak build instructions.

3 years agoQmaketocmake7 (#933)
tsteven4 [Sun, 16 Oct 2022 16:16:49 +0000 (10:16 -0600)]
Qmaketocmake7 (#933)

* packaging improvements.

parse package_app arguments.
add fields to macos info.plist.
pass copyright year down.
make windows workflows match.

* fix windows rc copyright

* automate copyright date for gui in windows.

3 years agoupdate workflows (#932)
tsteven4 [Wed, 12 Oct 2022 16:05:12 +0000 (10:05 -0600)]
update workflows (#932)

* move github workflows towards cmake.

* update action versions.

* update actions

* add workflow dispatch to all workflows

* remove travis

3 years agofix skipping of kml validation with valgrind. (#930)
tsteven4 [Mon, 10 Oct 2022 15:35:38 +0000 (09:35 -0600)]
fix skipping of kml validation with valgrind. (#930)

3 years agouse cmake for ubuntu CI, CMakeFileLists tweaks. (#929)
tsteven4 [Mon, 10 Oct 2022 14:59:26 +0000 (08:59 -0600)]
use cmake for ubuntu CI, CMakeFileLists tweaks. (#929)

refactor ubuntu workflow using a matrix.
create gpsbabelfe_lupdate, gpsbabelfe_lrelease targest on all platorms.
add USES_TERMINAL to check-vtesto so we can see test progress live.
update docker images for focal and jammy for Qt5 cmake issues.
update docker image for jammy adding Qt6.  This uses a PPA to work
around https://bugs.launchpad.net/ubuntu/+source/qt6-base/+bug/1970057.
Note the PPA isn't actually required to build, but it is required to
run the GUI, i.e. all users on jammy using Qt6 who want to run the GUI will
need the PPA, or need ubuntu to incorporate the upstream debian fix!

3 years agomove CI sanitizier, clazy, coverage builds to cmake (#926)
tsteven4 [Mon, 3 Oct 2022 20:52:19 +0000 (14:52 -0600)]
move CI sanitizier, clazy, coverage builds to cmake (#926)

* switch linux CI extra_tests and coverage builds to cmake.

* add ninja to linux coverage install list

* add qt serial for coverage build

* add webengine for coverage build

* actually fail when ubsan finds an error!

* avoid divide by zero error in kml writer.

* teach camke that the check target uses the console.

this lets the test output show up as the tests run instead of
delaying it all until the end.

3 years agosimplify cmake builds (#925)
tsteven4 [Mon, 3 Oct 2022 17:47:28 +0000 (11:47 -0600)]
simplify cmake builds (#925)

* fix some Qt version dependencies.

* disable strptime warning.

* simplify CMakeLists.txt.

* update a macos build to Xcode 13.2.1 (clang 13)

* Revert "update a macos build to Xcode 13.2.1 (clang 13)"

This reverts commit 2bd252713607249683db3b2dae7452c481041850.

* Revert "disable strptime warning."

This reverts commit b75ca3882185d7d9e3b4fd288f2b847bf2f56bfd.

3 years agofix Qt version dependencies (#922)
tsteven4 [Sat, 24 Sep 2022 14:09:58 +0000 (08:09 -0600)]
fix Qt version dependencies (#922)

* fix some Qt version dependencies.

* disable strptime warning.

3 years agoprepare for deprecation of qmake. (#920)
tsteven4 [Fri, 23 Sep 2022 12:46:08 +0000 (06:46 -0600)]
prepare for deprecation of qmake. (#920)

* prepare for deprecation of qmake.

build a release level package in CI with cmake on windows & macOS.
this can be compared with the release package build in CI with qmake.

support cmake multi-config generators on macOS (e.g. Xcode) as well
as well as single-config generators (.e.g Unix Makefiles, Ninja).

support packaging of out of source builds on macOS when using cmake.
note that Qt6 support for packaging still has many features in
preview, thus we still use our script based packaging.

move some Ubuntu CI jobs to jammy.  Unfortunately Qt6WebEngine is
unusable on jammy due to a bug in qt6-base.  So we are still using
Qt5 :(
https://bugs.launchpad.net/ubuntu/+source/qt6-base/+bug/1970057

* isolate qmake and cmake flows for windows.

add on on demand CI workflow for esoteric windows cases.

* use qt tools from cmake prefix, add gpsbabel translation support.

* fix coretool on windows.

add qt binary directory to environment so coretool can find the
Qt DLLs.

* catch coretool cmake up with #921.

* update packaging dependencies

3 years agocoretool fixes and enhancements (#921)
tsteven4 [Tue, 20 Sep 2022 18:03:33 +0000 (12:03 -0600)]
coretool fixes and enhancements (#921)

* get coretool to work on macos under qmake.

* enhance coretool.

1. don't use stderr for coretool output.  This avoids comingling of
real error messages with the coretool output.
2. disable the similartext heuristic with coretool.  This heuristic,
which is enabled by default, was resulting in occasional mistranslations.

3 years agogithub runner updates (#919)
tsteven4 [Fri, 2 Sep 2022 19:17:12 +0000 (13:17 -0600)]
github runner updates (#919)

* update github action for macos, windows.

* fix macos action

* try harder to fix macos action

* try harder yet

* simplify mac cache keys, no compiler dependency

3 years agoMerge pull request #917 from tsteven4/taborder
tsteven4 [Tue, 30 Aug 2022 15:16:42 +0000 (09:16 -0600)]
Merge pull request #917 from tsteven4/taborder

set tab order for filter widgets.

3 years agoset tab order for filter widgets.
tsteven4 [Tue, 30 Aug 2022 14:10:08 +0000 (08:10 -0600)]
set tab order for filter widgets.

3 years agoMerge pull request #916 from tsteven4/issue915
tsteven4 [Thu, 25 Aug 2022 13:40:43 +0000 (07:40 -0600)]
Merge pull request #916 from tsteven4/issue915

fix GUI handling of track filter start/stop times.

3 years agouse radio buttons for exclusive choice of timespec
tsteven4 [Thu, 25 Aug 2022 13:18:40 +0000 (07:18 -0600)]
use radio buttons for exclusive choice of timespec

for track filter start and stop times in GUI.

3 years agofix GUI handling of track filter start/stop times.
tsteven4 [Tue, 23 Aug 2022 18:36:22 +0000 (12:36 -0600)]
fix GUI handling of track filter start/stop times.

This resolves #915

The timeSpec of the QDateTimeEdit objects is maintained in
accordance with the TZCheck QCheckBox.  This solves additional
issues with DST transitions and edits.

3 years agofix maps javascript api deprecation warning. (#914)
tsteven4 [Mon, 22 Aug 2022 13:19:52 +0000 (07:19 -0600)]
fix maps javascript api deprecation warning. (#914)

js: google.maps.event.addDomListener() is deprecated, use the standard addEventListener() method instead: https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener

3 years agoQStringize vecs a bit more. (#913)
tsteven4 [Thu, 18 Aug 2022 13:06:56 +0000 (07:06 -0600)]
QStringize vecs a bit more. (#913)

This fixes an ancient FIXME regarding the use of the option name
to indicate a option was given without a value.

This enhances the validity checking of default, minimum and maximum
values.

3 years agoreplace atoi, atol, atof (#912)
tsteven4 [Mon, 15 Aug 2022 13:01:08 +0000 (07:01 -0600)]
replace atoi, atol, atof (#912)

* eliminate usage of atoi

which has possible undefined behavior.

* eliminate a couple more atoi usages.

* eliminate atol usage.

* eliminate use of atof.

3 years agodelete reference files not used by testo (or whitelisted) (#911)
tsteven4 [Tue, 9 Aug 2022 15:14:27 +0000 (09:14 -0600)]
delete reference files not used by testo (or whitelisted) (#911)

* delete reference files not used by testo.

the script tools/obsolete_unused_reference_files does this,
altough it might be delicate.
note any unused files in the reference tree will be deleted!

* restore used alternate reference file

* restore and whitelist some reference files.

* restore and whitelist a reference readme file.

* Revert "restore and whitelist a reference readme file."

This reverts commit 496fbf58d9b083863ae5011db4f8e48e044af546.

* use 'sort -u' instead of 'sort | uniq'.

* whitelist some reference files that are referred to in comments.

3 years agodelete obsolete and unused document sections. (#910)
tsteven4 [Mon, 8 Aug 2022 23:28:49 +0000 (17:28 -0600)]
delete obsolete and unused document sections. (#910)

3 years agoremove remnants of zombie f90g_track. (#909)
tsteven4 [Mon, 8 Aug 2022 20:22:31 +0000 (14:22 -0600)]
remove remnants of zombie f90g_track. (#909)

This format was retired in #868 8b7a8613bca79cbbd62aae5378b6073ec511bb99

3 years agoAdd missing qstartz_bl_1000 header to build generators. (#908)
tsteven4 [Mon, 8 Aug 2022 19:10:28 +0000 (13:10 -0600)]
Add missing qstartz_bl_1000 header to build generators. (#908)

3 years agoremove remnants of zombie mapbar. (#907)
tsteven4 [Mon, 8 Aug 2022 18:46:03 +0000 (12:46 -0600)]
remove remnants of zombie mapbar. (#907)

this format was removed in #870 dd320d39acfc7e3ebb57df04f3a52e0350cc6bac

3 years agoretire html_entitize, xml_entitize. (#906)
tsteven4 [Thu, 4 Aug 2022 17:39:14 +0000 (11:39 -0600)]
retire html_entitize, xml_entitize. (#906)

* retire html_entitize, xml_entitize.

in favor of QString::toHtmlEscaped() and XmlStreamWriter.

* delete obsolete entity struct.

3 years agoconvert html writer to html 5. (#905)
tsteven4 [Wed, 3 Aug 2022 23:35:31 +0000 (17:35 -0600)]
convert html writer to html 5. (#905)

this also fixes a bug where we could fail to entitize wpt->description.
this also fixes a bug where we could create illegal fragments and id
attributes.

3 years agoconvert html writer to textstream. (#904)
tsteven4 [Wed, 3 Aug 2022 13:54:29 +0000 (07:54 -0600)]
convert html writer to textstream. (#904)

3 years agoupdate text writer to use a textstream. (#903)
tsteven4 [Wed, 3 Aug 2022 13:04:04 +0000 (07:04 -0600)]
update text writer to use a textstream. (#903)

* convert text writer to textstream.

* tweak text writer

3 years agodeleted obsolete osm declaration. (#902)
tsteven4 [Tue, 2 Aug 2022 16:15:33 +0000 (10:15 -0600)]
deleted obsolete osm declaration. (#902)

3 years agouse xmlstreamwriter with osm format (#901)
tsteven4 [Tue, 2 Aug 2022 14:15:25 +0000 (08:15 -0600)]
use xmlstreamwriter with osm format (#901)

* convert osm writer use xmlstreamwriter

* use xmlstreamwriter for osm.

* add missing reference files for osm test.

* fix time zone test issues with osm writer test.

* use writeEmptyElement in osm writer

3 years agochange return type of strip_html, strip_nastyhtml to QString. (#900)
tsteven4 [Sun, 31 Jul 2022 21:48:04 +0000 (15:48 -0600)]
change return type of strip_html, strip_nastyhtml to QString. (#900)